home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8174 / 8174.xpi / chrome / antbar.jar / content / watchURL.js < prev   
Text File  |  2009-12-30  |  2KB  |  93 lines

  1.  
  2.   /*
  3.    * DO NOT EDIT THIS FILE !
  4.    *
  5.    * IT WAS AUTOMATICALLY COPIED FROM THE /lib/ DIRECTORY
  6.    * TO UPDATE IT YOU NEED TO BUILD THE XPI OF THE CURRENT PROJECT
  7.    *
  8.    */
  9.  
  10. // 
  11. //  watchURL.js
  12. //  firefox
  13. //  
  14. //  Created by Zak on 2008-07-14.
  15. //  Copyright 2008-2009 Ant.com. All rights reserved.
  16. // 
  17.  
  18. var AntUrlListener =
  19. {
  20.     QueryInterface: function(aIID)
  21.     {
  22.         if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
  23.                 aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
  24.                 aIID.equals(Components.interfaces.nsISupports))
  25.             return this;
  26.         throw Components.results.NS_NOINTERFACE;
  27.     },
  28.  
  29.     onLocationChange: function(aProgress, aRequest, aURI)
  30.     {
  31.         AntWatchUrl.notify(aURI);
  32.     },
  33.  
  34.     onStateChange: function() {},
  35.     onProgressChange: function() {},
  36.     onStatusChange: function() {},
  37.     onSecurityChange: function() {},
  38.     onLinkIconAvailable: function() {}
  39. };
  40.  
  41.  
  42. var AntWatchUrl =
  43. {
  44.     watchers: new AntArray(),
  45.     inited: false,
  46.  
  47.     init: function ()
  48.     {
  49.         var self = AntWatchUrl;
  50.  
  51.         if (self.inited)
  52.             return;
  53.  
  54.         window.addEventListener("load", function() { AntWatchUrl.start() }, false);
  55.         window.addEventListener("unload", function() { AntWatchUrl.stop() }, false);
  56.         self.inited = true;
  57.     },
  58.     
  59.     start: function ()
  60.     {
  61.         gBrowser.addProgressListener(AntUrlListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
  62.     },
  63.  
  64.     stop: function ()
  65.     {
  66.         gBrowser.removeProgressListener(AntUrlListener);
  67.     },
  68.  
  69.     addWatcher: function (watcher)
  70.     {
  71.         var self = AntWatchUrl;
  72.         self.watchers.push(watcher);
  73.     },
  74.  
  75.     removeWatcher: function (watcher)
  76.     {
  77.         var self = AntWatchUrl;
  78.         self.watchers.removeValue(watcher);
  79.     },
  80.  
  81.     notify: function (aURI)
  82.     {
  83.         var self = AntWatchUrl;
  84.         if (aURI == null)
  85.             aURI = {spec: "about:blank"};
  86.         self.watchers.each(
  87.                 function (handler)
  88.                 {
  89.                         handler(aURI);
  90.                 });
  91.     }
  92. };
  93.